// 给你一个正整数数组 arr ，请你计算所有可能的奇数长度子数组的和。
// 子数组 定义为原数组中的一个连续子序列。
// 请你返回 arr 中 所有奇数长度子数组的和 。

// 示例 1：
// 输入：arr = [1,4,2,5,3]
// 输出：58
// 解释：所有奇数长度子数组和它们的和为：
// [1] = 1
// [4] = 4
// [2] = 2
// [5] = 5
// [3] = 3
// [1,4,2] = 7
// [4,2,5] = 11
// [2,5,3] = 10
// [1,4,2,5,3] = 15
// 我们将所有值求和得到 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58

// 示例 2：
// 输入：arr = [1,2]
// 输出：3
// 解释：总共只有 2 个长度为奇数的子数组，[1] 和 [2]。它们的和为 3 。

// 示例 3：
// 输入：arr = [10,11,12]
// 输出：66

// 提示：
//     1 <= arr.length <= 100
//     1 <= arr[i] <= 1000
/**
 * @param {number[]} arr
 * @return {number}
 */

///////////大佬思路：前缀和
///////////意思是：首先求出前缀和数组[1, 5, 7, 12, 15];
////////////////要求得[l, r]之间的和，那么l可以从0到arr.length - 1，每次+1
/////////////////那么r的值就需要每次+2，因为要求的是长度为奇数
////////////////如果i===0 则结果就等于arr[j]
///////////////如果i !== 0 则结果等于arr[j] - arr[i - 1];
var sumOddLengthSubarrays = function(arr) {
    let result = 0;
    for(let i = 1; i < arr.length; i++) {
       arr[i] += arr[i - 1];
    }
    for(let i = 0; i < arr.length; i++) {
        for(let j = i; j < arr.length; j += 2) {
            result += arr[j] - (arr[i - 1] || 0);
        }
    }
    return result;
};
console.log(sumOddLengthSubarrays([1,4,2,5,3]));


